""" Code illustration: 10.06 validate='focusout' demo Tkinter GUI Application Development Blueprints """ import tkinter as tk import re class FocusOutValidationDemo(): def __init__(self): self.master = tk.Tk() self.error_message = tk.Label(text='', fg='red') self.error_message.pack() tk.Label(text='Enter Email Address').pack() vcmd = (self.master.register(self.validate_email), '%P') invcmd = (self.master.register(self.invalid_email), '%P') self.email_entry = tk.Entry( self.master, validate="focusout", validatecommand=vcmd, invalidcommand=invcmd) self.email_entry.pack() tk.Button(self.master, text="Login").pack() tk.mainloop() def validate_email(self, P): self.error_message.config(text='') x = re.match(r"[^@]+@[^@]+\.[^@]+", P) return (x != None) def invalid_email(self, P): self.error_message.config(text='Invalid Email Address') self.email_entry.focus_set() app = FocusOutValidationDemo()